<template>
  <view class="main">
    <action-bar :options="navOptions"></action-bar>
    <uni-section title="选择需要评价的执业人员" type="line" style="padding: 0 20rpx">
      <view class="flex justify-between align-center" style="padding: 0 30rpx">
        <view class="uni-list-cell-left">
          当前选择
        </view>
        <view class="uni-list-cell-db">
          <picker @change="bindPickerChange" :value="institutionForm.index" :range="array" :range-key="'staffName'">
            <view class="uni-input">{{ institutionForm.staffName || '请选择' }}</view>
          </picker>
        </view>
      </view>
    </uni-section>
    <uni-section title="从业资格(总分40分)" type="line" style="padding: 0 20rpx">
      <uni-collapse ref="collapse" v-model="value1" @change="change">
        <template v-for="(item, index) in list1">
          <uni-collapse-item :title="item.title" :key="index">
            <span style="text-indent: 2em; display: block" v-for="items in item.remarks">{{ items }}</span>
          </uni-collapse-item>
          <span style="text-align: right">分值: <span style="color: #e94242">{{ item.score }}分</span></span>
        </template>
      </uni-collapse>
    </uni-section>
    <uni-section title="从业能力(总分15分)" type="line" style="padding: 0 20rpx">
      <uni-collapse ref="collapse" v-model="value2" @change="change">
        <template v-for="(item, index) in list2">
          <uni-collapse-item :title="item.title" :key="index">
            <span style="text-indent: 2em; display: block" v-for="items in item.remarks">{{ items }}</span>
          </uni-collapse-item>
          <span style="text-align: right">分值: <span style="color: #e94242">{{ item.score }}分</span></span>
        </template>
      </uni-collapse>
    </uni-section>
    <uni-section title="工作业绩(总分35分)" type="line" style="padding: 0 20rpx">
      <uni-collapse ref="collapse" v-model="value3" @change="change">
        <template v-for="(item, index) in list3">
          <uni-collapse-item :title="item.title" :key="index">
            <span style="text-indent: 2em; display: block" v-for="items in item.remarks">{{ items }}</span>
          </uni-collapse-item>
          <span style="text-align: right">分值: <span style="color: #e94242">{{ item.score }}分</span></span>
        </template>
      </uni-collapse>
    </uni-section>
    <uni-section title="加分项(总分20分)" type="line" style="padding: 0 20rpx">
      <uni-collapse ref="collapse" v-model="value4" @change="change">
        <template v-for="(item, index) in list4">
          <uni-collapse-item :title="item.title" :key="index">
            <span style="text-indent: 2em; display: block" v-for="items in item.remarks">{{ items }}</span>
          </uni-collapse-item>
          <span style="text-align: right">分值: <span style="color: #e94242">{{ item.score }}分</span></span>
        </template>
      </uni-collapse>
    </uni-section>
    <uni-section title="从业行为(不设上限)" type="line" style="padding: 0 20rpx">
      <uni-collapse ref="collapse" v-model="value5" @change="change">
        <template v-for="(item, index) in list5">
          <uni-collapse-item :title="item.title" :key="index">
            <span style="text-indent: 2em; display: block" v-for="items in item.remarks">{{ items }}</span>
          </uni-collapse-item>
          <span style="text-align: right">分值: <span style="color: #e94242">{{ item.score }}分</span></span>
        </template>
      </uni-collapse>
    </uni-section>
    <uni-section title="客户评价" type="line" style="padding: 0 20rpx">
      <uni-collapse ref="collapse" v-model="value" @change="change">
        <uni-collapse-item title="客户满意度">
          <span style="text-indent: 2em; display: block">每次执业活动由服务对象进行评价，每次评价的分值总分为 10
            分，此项的最终得 分为一个积分周期内所有项目的评分值的平均分。</span>
        </uni-collapse-item>
        <uni-rate style="display: flex; justify-content: flex-end" :value="0" allow-half margin="20"
          @change="onChange" />
      </uni-collapse>
    </uni-section>

    <view style="height: 130rpx"></view>
    <view class="main-footer">
      <view class="main-footer-submit" @click="submit">提交</view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      navOptions: {
        statusBar: "dark",
        left: {
          icon: "back",
        },
        center: {
          title: "执业评价详情",
        },
      },

      value: [],
      value1: [],
      value2: [],
      value3: [],
      value4: [],
      value5: [],

      list1: [
        {
          title: "评分项1: 从业要求",
          remarks: [
            "1、隐瞒有关情况或者提供虚假材料申请，获取从业资格的，一经发现，本次评定总分为 0 分。",
            "2、被依法取消从业资格，被责令暂停执业，或因违法执业行为受到行政处罚，未履行完毕的，不得继续开展从业活动。一经发现，本次评定总分为 0 分。",
            "3、未经注册擅自以注册消防工程师名义执业，或者被依法注销注册后继续执业的，一经发现，本次评定总分为 0 分。",
            "4、无相应资格从业人员从事社会消防技术服务活动的，一经发现，本次评定总分为0 分。",
            "5、冒用他人名义开展从业活动的。一经发现，本次评定总分为 0 分。",
            "6、超出本人执业范围或者聘用单位业务范围开展执业活动的，一经发现，本次评定总分为 0 分。",
          ],
          score: 8,
        },
      ],
      list2: [
        {
          title: "评分项1: 从业年限",
          remarks: [
            "自取得相应从业资格从事消防设施维护保养检测、消防安全评估工作，每年计 0.5分，累计不超过 5 分。",
          ],
          score: 8,
        },
        {
          title: "评分项2: 专业能力",
          remarks: [
            "取得从业资格外的工程类相关职业资格证书，国家级加 5 分，省级加 3 分；注册消防工程师取得从业资格外的消防行业特有工种职业资格证书，技师级加 5 分，高级加 3 分，中级加 1 分。本项最多加 8 分。",
          ],
          score: 8,
        },
        {
          title: "评分项3: 继续教育",
          remarks: [
            "注册消防工程师应参加继续教育，并通过国家消防救援局“社会消防技术服务信息系统”在线学习课程；其他从业人员常态化参加消防法律法规、消防技术标准和消防业务知识的学习。计 2 分。",
          ],
          score: 8,
        },
      ],
      list3: [
        {
          title: "评分项1: 服务项目数",
          remarks: [
            "在 1 个评价周期内承担的项目，出具消防技术服务文件数量≤200 个，每份计 0.1分；出具消防技术服务文件数量＞200 份，每增加 1 份加 0.05 分；上述情况担任技术负责人的，计（加）分减半，本项最多加 10 分。承担的项目＜3 个，不得分。",
          ],
          score: 8,
        },
        {
          title: "评分项2: 服务规模",
          remarks: [
            "在 1 个评价周期内承担的项目单体建筑面积≥20000 平方米，每出具 1 份消防技术服务文件计 0.25 分；承担项目单体建筑面积≥50000 平方米，每出具 1 份消防技术服务文件计 0.5 分。和前款重复的，不重复计分，按高分项计分，最多计 5分。",
          ],
          score: 8,
        },
      ],
      list4: [
        {
          title: "评分项1: 公益活动评价",
          remarks: [
            "参加专项监督抽查、消防宣传等活动，国家级的每次加 2 分，省级的每次加 1 分，市级的每次加 0.5 分。本项最多加 5 分。",
          ],
          score: 8,
        },
        {
          title: "评分项2: 荣誉评价",
          remarks: [
            "入选国家级消防领域专家库的，加 3 分；入选省级消防领域专家库的，加 2 分，入选市级消防领域专家库的，加 1 分。本项最多加 5 分。",
          ],
          score: 8,
        },
        {
          title: "评分项3: 奖励评价",
          remarks: [
            "在开展执业活动中，获得省、部级以上表彰的，每次加 2 分，获得市、厅级以上表彰的，每次加 1 分；参加省、部级以上的职业技能竞赛，获得一等奖的，每次加 3 分；获得二等奖的，每次加 2 分；获得三等奖的，每次加 1 分。参加市级以上的职业技能竞赛，获得一等奖的，每次加 2 分；获得二等奖的，每次加 1.5 分；获得三等奖的，每次加 1 分。本项最多加 5 分。",
          ],
          score: 8,
        },
        {
          title: "评分项4: 成果评价",
          remarks: [
            "参与编写、审查国家消防技术标准并发布实施的，每部加 3 分；参与编写、审查行业、地方消防技术标准并发布实施的，每部加 2 分。本项最多加 5 分。",
          ],
          score: 8,
        },
      ],
      list5: [
        {
          title: "评分项1: 从业行为合法性",
          remarks: [
            "1、以个人名义承接执业业务，开展执业活动被行政处罚的，本次评定总分为 0 分。",
            "2、在聘用单位出具的虚假消防安全技术文件上签名或者加盖执业印章被行政处罚的，每次扣 10 分。",
            "3、变造、倒卖、出租、出借或者以其他形式转让资格证书、注册证、执业印章被行政处罚的，每次扣 10 分。",
            "4、同时在两个以上消防技术服务机构从业或在其他机关、团体、企业、事业单位兼职被行政处罚的，每次扣 5 分。",
            "5、有需要变更注册的情形，未经注册审批部门准予变更注册而继续执业被行政处罚的，每次扣 5 分。",
            "6、在聘用单位出具的失实消防安全技术文件上签名或者加盖执业印章被行政处罚的，每次扣 5 分；造成重大损失的，本次评定总分为 0 分。",
            "7、不按照国家标准、行业标准开展消防技术服务活动被行政处罚的，每次扣 2 分；情节严重的，或造成重大损失的，本次评定总分为 0 分。",
            "8、担任消防设施维护保养检测机构的项目负责人或者消防设施操作员未到现场实地开展工作被行政处罚的，每次扣 2 分。",
          ],
          score: 8,
        },
        {
          title: "评分项2: 从业行为规范性",
          remarks: [
            "1、经火灾事故调查认定，对重大以上火灾事故负有责任的，或对较大火灾事故、或被中央级媒体曝光火灾事故负有主要责任的，本次评定总分为 0 分。",
            "2、经火灾事故调查认定，对较大火灾事故负有责任的，对一般火灾事故、或被省、市级媒体曝光火灾事故负有主要责任的，每次扣 10 分。",
            "3、存在恶意破坏市场秩序等不良从业行为的，或者其从业行为被社会单位投诉、新闻媒体曝光，经查实并造成严重影响的，每次扣 10 分。",
            "4、其他受到举报投诉，且经核查属实的，每次扣 2 分。",
          ],
          score: 8,
        },
        {
          title: "评分项3: 公共信息",
          remarks: ["从业人员是失信被执行人，扣 3 分。"],
          score: 8,
        },
        {
          title: "评分项4: 申报材料的真实性",
          remarks: [
            "消防技术服务从业人员在申报评价过程中提供虚假或失实材料，本次评定总分为 0 分。",
          ],
          score: 8,
        },
      ],

      index: null,
      institutionForm: {
        staffName: null,
        index: null,
        staffId: null,
      },
      array: [],
      fraction: null
    };
  },
  onLoad() {
    this.getList()
  },
  methods: {
    getList() {
      let info = uni.getStorageSync('app_userInfo')
      let data = {
        pageNo: 1,
        pageSize: 10,
        unitUserId: info.userId
      }
      this.$store.dispatch("getInstEvaluationsList", data).then(({ code, data: { records }, msg }) => {
        if (code == 200) {
          this.array = records
          console.log(this.array)
        }
      });
    },
    change() { },
    onChange(e) {
      this.fraction = e.value * 2;
    },
    bindPickerChange: function (e) {
      let index = e.detail.value
      this.$set(this.institutionForm, 'index', e.detail.value)
      this.$set(this.institutionForm, 'staffName', this.array[index].staffName)
      this.$set(this.institutionForm, 'staffId', this.array[index].staffId)
    },
    // 提交评分
    submit() {
      if (this.institutionForm.index != 0 && !this.institutionForm.index) {
        uni.showToast({
          title: '请选择需要评价的人员!',
          icon: 'error',
          duration: 2000
        });
        return
      }
      if (!this.fraction) {
        uni.showToast({
          title: '请给该人员进行打分!',
          icon: 'error',
          duration: 2000
        });
        return
      }
      let info = uni.getStorageSync('app_userInfo')
      let data = {
        staffId: this.institutionForm.staffId,
        staffName: this.institutionForm.staffName,
        unitUserId: info.userId,
        evaluationScore: this.fraction,
        unitName: info.nickName
      }
      this.$store.dispatch('getAssocEvaluationsServer', data).then(({ code, msg }) => {
        if (code == 200) {
          uni.showToast({
            title: '评价成功!',
            icon: 'success',
            duration: 2000
          })
          uni.redirectTo({
            url: '/pages_workTableChild/evaluate/staff'
          })
        } else {
          uni.showToast({
            title: msg,
            icon: 'error',
            duration: 2000
          })
        }
      })
    },
  },
};
</script>

<style lang="scss" scoped>
@import "@/styles/variables.scss";

.main {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;

  &-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  &-footer {
    height: 100rpx;
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: #fff;
    border-top: 1rpx solid #e5e5e5;
    display: flex;
    justify-content: flex-end;
    align-items: center;

    &-submit {
      width: calc(100% - 40rpx);
      height: 80rpx;
      line-height: 80rpx;
      text-align: center;
      border-radius: 44rpx;
      margin: 10rpx auto;
      background: $OVERALL_CONFIRM_BUTTON_COLOR;
      color: #fff;
    }
  }
}

::v-deep .uni-collapse-item__title.uni-collapse-item-border {
  border: none;
}

::v-deep .uni-collapse-item__title-box {
  height: 60rpx;
  line-height: 60rpx;
}

::v-deep .uni-collapse-item__wrap-content.uni-collapse-item--border {
  border: none;
}
</style>
